using FluentNHibernate.Mapping;
using EntitiesAndMappings.Entities;

namespace EntitiesAndMappings.Maps
{
    public sealed class TrabajadorMap : ClassMap<Trabajador>
    {
        public TrabajadorMap()
        {
            Id(x => x.Id).GeneratedBy.Native();
            Map(x => x.Codigo).Length(14).Unique().Not.Nullable();
            References(x => x.TipoDocumento).LazyLoad(Laziness.False).Not.Nullable();
            Map(x => x.NumeroDocumento).Length(12).Not.Nullable();
            Map(x => x.Nombres).Length(25).Not.Nullable();
            Map(x => x.Apellidos).Length(75).Not.Nullable();
            Map(x => x.FechaIngreso).Nullable();
            Map(x => x.Domicilio).Length(200).Not.Nullable();
            Map(x => x.FechaNacimiento).Nullable();
            Map(x => x.Ubigeo).Length(200).Not.Nullable();
            References(x => x.NivelEstudios).Not.Nullable();
            Map(x => x.AsignacionFamiliar);
            Map(x => x.TelefonoFijo).Length(20).Nullable();
            Map(x => x.TelefonoCelular).Length(20).Nullable();
            Map(x => x.CorreoElectronico).Length(100).Nullable();
            Map(x => x.Estado).Length(1).Not.Nullable();
        }

    }
}